/**
 * Project hdmap
 * @author shengjialiang
 * @version v1.0
 */


#ifndef _IFEATURE_H
#define _IFEATURE_H

#include "map_common/Object.h"
#include "map_dataset/DataSetConfig.h"
#include "osg/Array"

namespace DataManager
{
	class CRecordValues;
    class MAP_DATASET_EXPORT IFeature 
        : public Common::CObject
    {
    public:
        IFeature();

        virtual ~IFeature();

		inline osg::Vec3d& getExtendMax() { return this->mExtendMax; }

		inline osg::Vec3d& getExtendMin() { return this->mExtendMin; }

		inline osg::Vec3d& getBasePosition() { return this->mBasePosition; }

        virtual Common::CObject* clone();

        virtual void copyTo(CObject* in_pDestObject);

		virtual void assign(CRecordValues** inout_pRecordValues);

		virtual std::string& getOwnerID(){ return this->mOwnerID; }

    private:
        osg::Vec3d mExtendMax;
		osg::Vec3d mExtendMin;
		osg::Vec3d mBasePosition;
		std::string mOwnerID;

    };
}
#endif //_IFEATURE_H